package modules

import (
	"fmt"
	"github.com/spf13/viper"
)

type config struct{}

var Config config

func (c *config) New() *viper.Viper {
	//读取yaml文件
	v := viper.New()
	//config.SetConfigFile("./app/conf/config.yaml") // 指定配置文件路径
	v.SetConfigName("app")      // 配置文件名称(无扩展名)
	v.SetConfigType("yml")      // 如果配置文件的名称中没有扩展名，则需要配置此项
	v.AddConfigPath("./config") // 还可以在工作目录中查找配置
	//config.AddConfigPath("./conf")   // 还可以在工作目录中查找配置
	err := v.ReadInConfig() // 查找并读取配置文件
	if err != nil {         // 处理读取配置文件的错误
		panic(fmt.Errorf("Viper init Error: %s \n", err))
	}
	/*// 监控配置文件变化
	viper.WatchConfig()
	// 注意！！！配置文件发生变化后要同步到全局变量Conf
	viper.OnConfigChange(func(in fsnotify.Event) {
		fmt.Println("夭寿啦~配置文件被人修改啦...")
	})*/
	return v
}
